El estudio de los agentes software es paralelo al estudio de la inteligencia artificial. Por un lado, la inteligencia artificial estudia los métodos computacionales basados en el funcionamiento del razonamiento humano, mientras que el estudio de agentes se fundamenta en la construcción de sistemas que funcionan de manera autónoma para la resolución de problemas. Según esta aproximación, se puede decir que los agentes software son una aplicación práctica de la inteligencia artificial.
Un agente es un tipo de programa software cuya función es observar el entorno y reaccionar ante él, operando de forma autónoma, de forma más sencilla podemos decir que es, una entidad que emprende acciones con un objetivo y de acuerdo con unas percepciones.
El proceso parte de la respuesta a partir de unos datos de entrada, de tal manera que se puede interpretar lo que se observa, razonar una respuesta, y luego aplicarla.
Ejemplos:
Robots de limpieza.
Robots sociales inteligentes.
Un agente es un sistema que se encuentra dentro y como parte de un entorno que lo percibe y actúa sobre él, a lo largo del tiempo, efectuando lo que percibe también en un entorno futuro, (Franklin y Graesser, 1997).
Características:
Entorno / Ambiente: en donde actúa el agente y con que.
Sensores: lo que permite que perciba el entorno.
Actuadores: con lo que interactúa con el entorno.
Objetivo: la meta que tiene el agente, para lo que está creado.
Métricas de rendimiento: como saber si esta funcionando o no.
Posibles elementos de aprendizaje.
Un agente inteligente percibe y reconoce el ambiente que lo rodea, actúa de manera independiente para ejecutar sus propósitos y, además, es capaz de optimizar su rendimiento mediante aprendizaje. Por tanto, un agente es capaz de tomar la decisión más adecuada en cada momento.
Un agente de inteligencia artificial es un conjunto de funciones matemáticas, concretamente podemos hablar de tres funciones:
Función objetivo: es la encapsulación matemática del propósito del agente.
Función de refuerzo: prueba varios comportamientos y los que aumentan su función de refuerzo tienen más posibilidades de ocurrir en un futuro. Es el aprendizaje.
Función de aptitud: es utilizada en los algoritmos evolutivos y determina la calidad de las soluciones candidatas como si fueran individuos de una población.
Un agente racional tomara la decisión óptima y maximizará el rendimiento.
En el caso de los agentes racionales, una función objetivo se asigna con todas las metas que impulsan al agente a actuar y los sacrificios aceptables en el cumplimiento de sus objetivos.
Por tanto, un agente racional sabrá valorar los diferentes parámetros y tomar una decisión que le acerque a la consecución de sus objetivos.
Función agente: mapea diferentes percepciones con diferentes acciones.
Ejemplo: cuando un robot aspirador choca, reacciona retrocediendo y girando.
Conocimiento del agente: el agente tomará sus decisiones según su conocimiento del entorno. Este conocimiento se puede aportar al agente de dos maneras:
Conocimiento a priori: incorporado en el modelo desde su propio diseño.
Conocimiento aprendido: incorporado en el modelo por el propio agente en base a su experiencia o a nuevas observaciones.
Cuando un agente se basa únicamente en conocimiento a priori decimos que no es autónomo, pues no será capaz de sobrevivir por sí mismo a cambios en su entorno.
Normalmente, los agentes siguen un modelo mixto en el que parte de su conocimiento es a priori, pero este puede ser modificado por la experiencia.
Evaluamos el comportamiento de un agente por sus consecuencias. Cuando un agente percibe su entorno, genera una serie de acciones según la percepción que recibe y se generan una serie de acciones que hacen que el entorno pase por una serie de estados. De esta noción de deseabilidad se puede recoger una medida de rendimiento que evalúa cualquier secuencia de estados del entorno.
CICLO.
Percepción: capturar la información del ambiente recibida a través de los sensores.
Procesado de información: realizar las tareas inteligentes que correspondan y elegir la mejor acción a ejecutar. Para ello, seguramente, el agente necesitará tener memoria.
Actuación: modificar el ambiente en base a la información procesada y, por tanto, también se modificará la memoria.
Esperar un tiempo hasta que se cumpla el tiempo de muestreo (continuo) o hasta que se reciba el evento que lance un nuevo ciclo (discreto).
Ir a CICLO.
En ingeniería de software, un agente es un programa que ejecuta una función en nombre del usuario.
La programación orientada a agentes, tiene ideas análogas en la programación orientada a objetos, como los métodos, las funciones y, por supuesto, los objetos. Por lo tanto, un agente se define en términos de su comportamiento, mientras que los objetos se definen en términos de métodos y atributos.
Los cuatro principios que diferencian a un agente del resto de programas son:
Autonomía: prioriza tareas y toma de decisiones sin interacción humana.
Persistencia de código: el código no se ejecuta bajo demanda, sino que el agente decide cuando realizar alguna actividad.
Reactividad al contexto en el que operan.
Habilidad social para colaborar con otros agentes en una tarea.